r = 1 gotsword = 1 devil = 1 SCREEN 12 COLOR 7, 0 CLS DIM SHARED DOOM AS DOUBLE Minutes = 10 Seconds = 0 GameTime = Minutes * 60 + Seconds DIM directions(1 TO 9) AS STRING directions(1) = "EAST" directions(2) = "NORTH OR WEST" directions(3) = "SOUTH OR EAST" directions(4) = "WEST OR SOUTH" directions(5) = "NORTH OR SOUTH" directions(6) = "NORTH OR SOUTH" directions(7) = "NORTH OR WEST" directions(8) = "EAST OR SOUTH" directions(9) = "NORTH" PRINT "" PRINT "" PRINT "A night you'll never forget, a world lost in darkness, on the brink of life" PRINT "and death. Where madness is the only that keeps one from falling into the void" PRINT "of darkness." PRINT "" DO: LOOP UNTIL INKEY$ <> "" DOOM = TIMER(0.001) + GameTime 'change this to to desied time for the game to run DO CLS PRINT PRINT PRINT " " PRINT " " PRINT " " PRINT " Night of the Devil " PRINT " " PRINT " Written by " PRINT " " PRINT " D.B. Taylor" PRINT "" PRINT " Copyright (c) 2015" PRINT "" PRINT SPACE$(38); IF INSTR(directions(r), "NORTH") THEN PRINT "N" ELSE PRINT PRINT "*---------------------------------* "; IF INSTR(directions(r), "WEST") THEN PRINT "W"; ELSE PRINT " "; PRINT " + "; IF INSTR(directions(r), "EAST") THEN PRINT "E"; ELSE PRINT " "; PRINT " *------------------------------------*" PRINT SPACE$(38); IF INSTR(directions(r), "SOUTH") THEN PRINT "S" ELSE PRINT PRINT PRINT "If you are stuck just type HELP." PRINT GOSUB ROOM GOSUB parser LOOP ROOM: IF r = 1 THEN: GOSUB r1 IF r = 2 THEN: GOSUB r2 IF r = 3 THEN: GOSUB r3 IF r = 4 THEN: GOSUB r4 IF r = 5 THEN: GOSUB r5 IF r = 6 THEN: GOSUB r6 IF r = 7 THEN: GOSUB r7 IF r = 8 THEN: GOSUB r8 IF r = 9 THEN: GOSUB r9 RETURN parser: PRINT "> "; cmd$ = GrabInput cmd$ = LTRIM$(RTRIM$(UCASE$(cmd$))) IF cmd$ = "END" OR cmd$ = "QUIT" OR cmd$ = "EXIT" OR cmd$ = "Q" THEN END END IF IF cmd$ = "HELP" OR cmd$ = "H" OR cmd$ = "?" THEN CLS PRINT "HERE ARE SOME BASIC COMMANDS THAT CAN BE USED IN THE GAME..." PRINT PRINT "NORTH, EAST ,SOUTH, AND WEST - MOVE TO AN AVAILABLE LOCATION" PRINT "EXAMINE (OBJECT) - EXAMINE AN OBJECT" PRINT "USE (OBJECT) - USE AN OBJECT" PRINT "TAKE (OBJECT) - TAKE OR MOVE AN OBJECT" PRINT "INVENTORY - VIEW YOUR INVENTORY" PRINT "DRINK - DRINK BEER" PRINT "UNLOCK - UNLOCK DOOR" PRINT "HELP - VIEW THIS SCREEN" PRINT "END - END GAME" PRINT PRINT "PRESS ANY KEY...": SLEEP DO: LOOP UNTIL INKEY$ = "" DO: LOOP UNTIL INKEY$ <> "" END IF IF cmd$ = "INVENTORY" OR cmd$ = "INV" OR cmd$ = "ITEMS" OR cmd$ = "I" THEN CLS PRINT "INVENTORY..." PRINT IF gotsword = 1 THEN: PRINT "A rusted old iron sword." PRINT PRINT "PRESS ANY KEY..." DO: LOOP UNTIL INKEY$ = "" DO: LOOP UNTIL INKEY$ <> "" END IF IF cmd$ = "GO NORTH" OR cmd$ = "NORTH" OR cmd$ = "N" THEN IF r = 7 THEN: r = 6: GOTO moved IF r = 6 THEN: r = 5: GOTO moved IF r = 5 THEN: r = 4: GOTO moved IF r = 2 THEN: r = 3: GOTO moved IF r = 9 THEN: r = 8: GOTO moved END IF IF cmd$ = "GO EAST" OR cmd$ = "EAST" OR cmd$ = "E" THEN IF r = 1 THEN: r = 2: GOTO moved IF r = 3 THEN: r = 4: GOTO moved IF r = 8 THEN: r = 7: GOTO moved END IF IF cmd$ = "GO SOUTH" OR cmd$ = "SOUTH" OR cmd$ = "S" THEN IF r = 3 THEN: r = 2: GOTO moved IF r = 4 THEN: r = 5: GOTO moved IF r = 5 THEN: r = 6: GOTO moved IF r = 6 THEN: r = 7: GOTO moved IF r = 8 THEN: r = 9: GOTO moved END IF IF cmd$ = "GO WEST" OR cmd$ = "WEST" OR cmd$ = "W" THEN IF r = 2 THEN: r = 1: GOTO moved IF r = 4 THEN: r = 3: GOTO moved IF r = 7 THEN: r = 8: GOTO moved END IF IF (cmd$ = "USE SWORD") THEN CLS PRINT "You swing the sword around like a clumsy fool." DO: LOOP UNTIL INKEY$ = "" DO: LOOP UNTIL INKEY$ <> "" END IF IF (cmd$ = "EXAMINE DEVIL") AND r = 9 THEN CLS PRINT "The twisted deformed creature stands at only three feet tall. It's" PRINT "breathing heavily, the scent of rotten flesh lingers from his breath." DO: LOOP UNTIL INKEY$ = "" DO: LOOP UNTIL INKEY$ <> "" END IF IF (cmd$ = "EXAMINE SWORD") AND gotsword = 1 THEN CLS PRINT "A rusted old iron sword, Bought from an old shop that deals with" PRINT "old weapons and items from a darker time." DO: LOOP UNTIL INKEY$ = "" DO: LOOP UNTIL INKEY$ <> "" END IF IF (cmd$ = "USE SWORD") AND gotsword = 1 AND r = 9 THEN CLS GOTO win: DO: LOOP UNTIL INKEY$ = "" DO: LOOP UNTIL INKEY$ <> "" END IF IF (cmd$ = "RUN AWAY") AND r = 9 THEN CLS GOTO lose: DO: LOOP UNTIL INKEY$ = "" DO: LOOP UNTIL INKEY$ <> "" END IF moved: RETURN r1: PRINT "You are standing at the crossroads in a small farming community." RETURN r2: PRINT "With every step you take, you feel as if you are being watched." RETURN r3: PRINT "The road is covered in a red clay type material" RETURN r4: PRINT "A cold breeze brushes past you as the moon hangs high in the night" PRINT "sky." RETURN r5: PRINT "In the distance you can hear the faint sound of laughter being carried" PRINT "by the night winds." RETURN r6: PRINT "The odd swings and sways by what appears to be something climbing the" PRINT "young tree's." RETURN r7: PRINT "You come to the end of the road and notice that it twisted off into" PRINT "a dead end. But you feel that you must keep going." RETURN r8: PRINT "In the distance, you see a short figure standing alone in the pale" PRINT "moonlight." RETURN r9: PRINT "The Impish Devil, looks upon you with dead eye's and a smile upon it's face." PRINT "As if it's been waiting for you all this time." RETURN win: COLOR 2, 0 CLS PRINT "Just as you raise the sword and make a dash towards it. It" PRINT "vanishes into the night, not to be seen again. You hear the" PRINT "laughter of it. It speaks in a childish tone -You think you" PRINT "can slay me? You think I will allow you to do so? Foolish" PRINT "mortal.- And that is the last time that you ever see it again." PRINT DO: LOOP UNTIL INKEY$ <> "" END lose: COLOR 2, 0 CLS PRINT "It looks upon you and gives you a strange look. Before you know" PRINT "it you are teleported to another world. A world of darkness, where" PRINT "evil reigns supreme. Hope you have what it takes to survive..." PRINT DO: LOOP UNTIL INKEY$ <> "" END FUNCTION GrabInput$ x = POS(0) y = CSRLIN maxwidth = _WIDTH - x PCOPY 0, 1 'make a backup copy of the screen DO k = _KEYHIT i$ = INKEY$ LOOP UNTIL k = 0 AND INKEY$ = "" 'clear the keyboard buffer DO _LIMIT 30 PCOPY 1, 0 LOCATE y, x: PRINT Userinput$ k = _KEYHIT SELECT CASE k CASE 8 Userinput$ = LEFT$(Userinput$, LEN(Userinput$) - 1) CASE 65 TO 90, 97 TO 122, 32 Userinput$ = UCASE$(Userinput$ + CHR$(k)) END SELECT timerleft## = (DOOM - TIMER(0.001)) minutes = timerleft## \ 60 seconds = timerleft## - minutes * 60 LOCATE 2, 32: PRINT USING " ###:##.###"; minutes, seconds IF timerleft## <= 0 THEN GOTO doomed _DISPLAY LOOP UNTIL k = 13 GrabInput$ = Userinput$ _AUTODISPLAY EXIT FUNCTION doomed: CLS PRINT "You awaken to find yourself laying in bed. It was all but a dream," PRINT "that leaves you joyful, and you enjoy the rest of your time on Earth." _DISPLAY END END SUB